package com.sheepone.distributor.util;

import java.util.Random;

/**
 * @author Miss.杨
 * @description
 * @since 2023-12-14 16:49
 */
public class NumberUtil {
    private static final Random UTIL = new Random();

    /**
     * 获取 不小于 && 最接近 n 的2的次方数
     * @param n 目标数
     * @return 不小于 && 最接近 n 的2的次方数
     */
    public static int upper2Pow(int n){
        n-=1;
        n |= n >>> 1;
        n |= n >>> 2;
        n |= n >>> 4;
        n |= n >>> 8;
        n |= n >>> 16;
        return n + 1;
    }

    public static int randomInt(int min,int max){
        return UTIL.nextInt(min,max+1);
    }

    /**
     * 随机获取 [0,size-1] 区间内的数 通常用于数组下标
     * @param size
     * @return
     */
    public static int randomIndex(int size){
        return UTIL.nextInt(0,size);
    }
}
